<?php 
namespace Common\Model;
//导入核心文件的模型
use Hdphp\Model\Model;
	class User extends Model{
//		指定模型操作的表
//		国定写法
		protected $table='user';
//		自动验证参数
		protected $validate=array(
			array('username','required','用户名不存在',3,3)	
		);
		
//		login方法
		public function login(){
//			调用方法 就必须有protected $validata
			if(!$this->create()) return FALSE;
//			获取用户名和密码
			$username=$_POST['username'];
//			密码
			$password=$_POST['password'];
			
//			判断用户存不存在
//			find();获取一条
//			数据库中写法："select * from user where username={$username}";
//查询的数据库中的数组一条返回到这个变量里面  包括：(uid,用户名，密码)
			$userData=$this->where("username",$username)->find();
//			判断是否存在
			if(!$userData){
				$this->error="用户名不存在";
				return FALSE;
			}
//			POST传输的密码需要加密
			$password=$this->encrypt($username,$password);
//			var_dump($password);die;
//			判断密码
			if($password!=$userData['password']){
				$this->error="密码不正确";
				return FALSE;
			}
			
//			登陆成功写入session
			$_SESSION['id']=$userData['uid'];
//			跳转回主页
			return true;
		}
		
//		密码加密
		private function encrypt($username,$password){
//			将用户的用户名和密码连接上再加上一个加密串，再加密md5
			
			return md5(md5($username).md5($password).'houdunwang');
		}
		
//		创建一个修改密码的方法
		public function changePass(){
//			在方法中将自动验证的成员属性重定义
			$this->validate=array(
//				传过来的是表单里的name值,require是不能为空
				array('password','required','原密码不能为空',3,3),
				array('newPassword','required','新密码不能为空',3,3),
				array('confirmPassword','required','重复新密码不能为空',3,3),
				array('newPassword','confirm:confirmPassword','两次密码不一致',3,3),
			);
//			判断上面自动验证
			if(!$this->create()) return FALSE;
//			过滤后压入到$this->data中，提交之后才有

			//查询的数据库中User表的数组一条返回到这个变量里面  
			$userData=$this->where("uid",$_SESSION['id'])->find();
//			获取用户名
			$username=$userData['username'];
			
//			获取POST提交的原密码
			$password=$_POST['password'];
//			将POST提交的原密码进行加密
			$password=$this->encrypt($username, $password);
//			进行原密码比较
//			判断POST提交的原密码跟数据库中的密码
			if($password!=$userData['password']){
				$this->error="原密码不正确";
				return FALSE;
			}
			
//			获取新密码
			$newPass=$_POST['newPassword'];
//			进行加密
			$newPass=$this->encrypt($username, $newPass);
//			查询session['id']进行将新密码修改原来的密码
			$result=$this->where('uid',$_SESSION['id'])->update(array('password'=>$newPass));
//			判断修改成功没有
			if(!$result){
				$this->error='修改失败';
				return FALSE;
			}
			
//			清除session
			session_unset();
			session_destroy();
			
			
//			修改成功返回
			return true;
		}
	}

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	